#pragma once
#include <vector>
#include <string>
#include <cstdint>

struct DiskInfo {
    uint64_t size_gb;
    std::string sn;
};

struct ServerInfo {
    std::string sn;
    std::vector<DiskInfo> disks;
};

class Topo {
public:
    bool load_from_json(const std::string& path);
    const std::vector<ServerInfo>& servers() const { return servers_; }
    int total_disk_count() const;
private:
    std::vector<ServerInfo> servers_;
}; 